Control Structures

Control Structures construct a fundamental part of language along with syntax,semantics and core libraries. It is the Control Structures which makes the program more lively. Since they contol the flow of execution of program, they are named Control Structures

if statement

Usage:

if condition:
        statement_1
        statement_2
        ...
        statement_n

Note

In Python, block of code means, the lines with same indentation( i.e., same number of tabs or spaces before it). Here statement_1 upto statement_n are in if block. This enhances the code readability </div>

Example:


In [1]:
response = input("Enter an integer : ")
num = int(response)
if num % 2 == 0:
    print("{} is an even number".format(num))


Enter an integer : 4
4 is an even number
**Note** Typecasting `int(response)` converted the string `response` to integer. If user enters anything other than integer, `ValueError` is raised

if-else statement

Usage:

if condition:
        statement_1
        statement_2
        ...
        statement_n
    else:
        statement_1
        statement_2
        ...
        statement_n

Example:


In [59]:
response = input("Enter an integer : ")
num = int(response)
if num % 2 == 0:
    print("{} is an even number".format(num))
else:
    print("{} is an odd number".format(num))


Enter an integer : 5
5 is an odd number

Single Line if-else

This serves as a replacement for ternery operator avaliable in C

Usage:

C ternery

result = (condition) ? value_true : value_false

Python Single Line if else

result = value_true if condition else value_false

Example:


In [60]:
response = input("Enter an integer : ")
num = int(response)
result = "even" if num % 2 == 0 else "odd"
print("{} is {} number".format(num,result))


Enter an integer : 9
9 is odd number

if-else ladder

Usage:

if condition_1:
        statements_1
    elif condition_2:
        statements_2
    elif condition_3:
        statements_3
    ...
    ...
    ...
    elif condition_n:
        statements_n
    else:
        statements_last

Note

Python uses elif instead of else if like in C,Java or C# </div>

Example:


In [63]:
response = input("Enter an integer (+ve or -ve) : ")
num = int(response)
if num > 0:
    print("{} is +ve".format(num))
elif num == 0:
    print("Zero")
else:
    print("{} is -ve".format(num))


Enter an integer (+ve or -ve) : -78
-78 is -ve

**Note**: No `switch-case` There is no `switch-case` structure in Python. It can be realized using `if-else ladder` or any other ways

while loop

Usage:

while condition:
        statement_1
        statement_2
        ...
        statement_n

Example:


In [65]:
response = input("Enter an integer : ")
num = int(response)
prev,current = 0,1
i = 0
while i < num:
    prev,current = current,prev + current
    print('Fib[{}] = {}'.format(i,current),end=',')
    i += 1


Enter an integer : 5
Fib[0] = 1,Fib[1] = 2,Fib[2] = 3,Fib[3] = 5,Fib[4] = 8,
**Note** - Multiple assignments in single statement can be done -`Python` doesn't support `++` and `--` operators as in `C` - There is no `do-while` loop in Python

for loop

Usage:

for object in collection:
        do_something_with_object
**Notes** - `C` like `for(init;test;modify)` is not supported in Python - Python provides `range` object for iterating over numbers Usage of `range` object: ```python x = range(start = 0,stop,step = 1) ``` now `x` can be iterated, and it generates numbers including `start` excluding `stop` differing in the steps of `step`

Example:


In [66]:
for i in range(10):
    print(i, end=',')


0,1,2,3,4,5,6,7,8,9,

In [67]:
for i in range(2,10,3):
    print(i, end=',')


2,5,8,

In [68]:
response = input("Enter an integer : ")
num = int(response)
prev,current = 0,1
for i in range(num):
    prev,current = current,prev + current
    print('Fib[{}] = {}'.format(i,current),end=',')


Enter an integer : 5
Fib[0] = 1,Fib[1] = 2,Fib[2] = 3,Fib[3] = 5,Fib[4] = 8,
**Note** Loop control statements `break` and `continue` work in the same way as they work in `C`